【FPGA】基于VGA的图像显示 您所在的位置:网站首页 fpga 开发板刷新率 【FPGA】基于VGA的图像显示

【FPGA】基于VGA的图像显示

2024-05-28 08:43| 来源: 网络整理| 查看: 265

目录 一丶VGA协议二丶彩条显示1.任务分析2.代码设计 三丶显示名字1.任务分析2.代码设计 四丶图片显示1.任务分析2.代码设计

一丶VGA协议

VGA的全称是Video Graphics Array,即视频图形阵列,是一个使用模拟信号进行视频传 输的标准。早期的CRT显示器由于设计制造上的原因,只能接收模拟信号输入,因此计算机内 部的显卡负责进行数模转换,而VGA接口就是显卡上输出模拟信号的接口。如今液晶显示器虽 然可以直接接收数字信号,但是为了兼容显卡上的VGA接口,也大都支持VGA标准。

VGA端口的结构: VGA端口是视频输出端口,端口一共包含15个管脚,如下图:

在这里插入图片描述

VGA原理: 在通常使用的连接方法里面,15个管脚里面的5个是最重要的,他们 包括3个基本红,绿,蓝三条基本色彩线和水平与垂直两条控制线

在这里插入图片描述

VGA接口标准: VGA工业标准所要求的频率: • 时钟频率: 25.175MHz(像素输出的频率); • 行频: 31469Hz; • 场频: 59.94Hz。 显示器技术规格提供的行频一般在30kHz~45kHz(保守数据),场频一般在 50Hz~75Hz(保守数据),针对以上保守数据,以30kHz的行频进行扫描时 所需时钟频率为:30kHz×800(行周期)=24MHz,则场频为:30kHz÷525( 场周期)=57.14Hz

在VGA视频传输标准中,视频图像被分解为红、绿、蓝三原色信号,经过数模转换之后,在行同步(HSYNC)和场同步(VSYNC)信号的同步下分别在三个独立通道传输。VGA在传输过程中的同步时序分为行时序和场时序

行同步时序: 在这里插入图片描述

场同步时序: 在这里插入图片描述

从上面两幅图中我们可以看到VGA传输过程中的行同步时序和场同步时序非常类似,一行或一场(又称一帧)数据都分为四个部分:低电平同步脉冲、显示后沿、有效数据段以及显示前沿。

行同步信号HSYNC在一个行扫描周期中完成一行图像的显示,其中在a段维持一段时间的低电平用于数据同步,其余时间拉高;在有效数据期间(c段),红绿蓝三原色数据通道上输出一行图像信号其余时间数据无效。

与之类似,场同步信号在在一个场扫描周期中完成一帧图像的显示,不同的是行扫描周期的基本单位是像素点时钟,即完成一个像素点显示所需要的时间;而场扫描周期的基本单位是完成一行图像显示所需要的时间。

早期的VGA特指分辨率为640X480的显示模式,后来根据分辨率的不同,VGA又分为VGA(640x480)、SVGA(800x600)、XGA(1024x768)、SXGA(1280x1024)等。不同分辨率的VGA显示时序是类似的,仅存在参数上的差异,如图 18.1.5所示。

需要注意的是,即便分辨率相同,刷新速率(每秒钟图像更新次数)不一样时,对应的VGA像素时钟及时序参数也存在差异。例如,显示模式“640480@75”刷新速率为75hz,与相同分辨率下刷新速率为60hz的“640480@60”模式相比,像素时钟更快,其他时序参数也不尽相同。

在这里插入图片描述

二丶彩条显示 1.任务分析

本节实验任务是使用FPGA开发板上的VGA接口在显示器上显示彩条,要求分辨率为 640*480,刷新速率为60hz。

在这里插入图片描述

此部分实现彩条显示只需要给像素横坐标设置范围,在规定范围显示对应的颜色即可 在这里插入图片描述

2.代码设计 module VGA_colorbar_test( OSC_50, //原CLK2_50时钟信号 VGA_CLK, //VGA自时钟 VGA_HS, //行同步信号 VGA_VS, //场同步信号 VGA_BLANK, //复合空白信号控制信号 当BLANK为低电平时模拟视频输出消隐电平,此时从R9~R0,G9~G0,B9~B0输入的所有数据被忽略 VGA_SYNC, //符合同步控制信号 行时序和场时序都要产生同步脉冲 VGA_R, //VGA绿色 VGA_B, //VGA蓝色 VGA_G); //VGA绿色 input OSC_50; //外部时钟信号CLK2_50 output VGA_CLK,VGA_HS,VGA_VS,VGA_BLANK,VGA_SYNC; output [7:0] VGA_R,VGA_B,VGA_G; parameter H_FRONT = 16; //行同步前沿信号周期长 parameter H_SYNC = 96; //行同步信号周期长 parameter H_BACK = 48; //行同步后沿信号周期长 parameter H_ACT = 640; //行显示周期长 parameter H_BLANK = H_FRONT+H_SYNC+H_BACK; //行空白信号总周期长 parameter H_TOTAL = H_FRONT+H_SYNC+H_BACK+H_ACT; //行总周期长耗时 parameter V_FRONT = 11; //场同步前沿信号周期长 parameter V_SYNC = 2; //场同步信号周期长 parameter V_BACK = 31; //场同步后沿信号周期长 parameter V_ACT = 480; //场显示周期长 parameter V_BLANK = V_FRONT+V_SYNC+V_BACK; //场空白信号总周期长 parameter V_TOTAL = V_FRONT+V_SYNC+V_BACK+V_ACT; //场总周期长耗时 reg [10:0] H_Cont; //行周期计数器 reg [10:0] V_Cont; //场周期计数器 wire [7:0] VGA_R; //VGA红色控制线 wire [7:0] VGA_G; //VGA绿色控制线 wire [7:0] VGA_B; //VGA蓝色控制线 reg VGA_HS; reg VGA_VS; reg [10:0] X; //当前行第几个像素点 reg [10:0] Y; //当前场第几行 reg CLK_25; always@(posedge OSC_50)begin CLK_25=~CLK_25; //时钟 end assign VGA_SYNC = 1'b0; //同步信号低电平 assign VGA_BLANK = ~((H_Cont=V_BLANK) //如果场计数器大于等于场空白总时长 Y10'd144&&X=0&&X=400&&X=H_BLANK) //如果行计数器大于等于行空白总时长 X10'd180&&X


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有